ディスクパラメータの詳細
ここではブートセクターの中の特にディスクパラメータについて解説する。BPB(BIOS Parameter Block)とも呼ばれる。ただしBPBは以下のOEM名が記録される先頭8バイトを除いたものを指すのが普通だ。
まずはFAT16の場合のディスクパラメータを見てみよう。
[FAT16のディスクパラメータ]
offset | サイズ(bytes) | 内容 | 値 |
03 | 8 | OEM名 | |
0B | 2 | セクターサイズ | 512 |
0D | 1 | セクター数/クラスター | |
0E | 2 | 予約セクター数 | |
10 | 1 | FATの数 | |
11 | 2 | ルートディレクトリエントリー数 | |
13 | 2 | 全セクター数 | |
15 | 1 | メディアDescriptor | |
16 | 2 | セクター数/FAT | |
18 | 2 | セクター数/トラック | |
1A | 2 | ヘッド数 | |
1C | 4 | 隠しセクター数 | |
20 | 4 | 全Bigセクター数 | |
24 | 1 | ドライブID | |
25 | 1 | ダーティーフラグ | |
26 | 1 | 拡張ブートサイン | |
27 | 4 | シリアル番号 | |
2B | 11 | ボリューム名 | |
36 | 8 | ファイルシステムタイプ | FAT16 |
このパーティションのファイルシステムの各種情報盛り込まれている。この中で比較的重要なのは別名アロケーションユニットサイズとの呼ばれる「セクター数/クラスター」だろう。ボリューム名などもおなじみだ。
IPLは基本的にこれらのデータを見て、IO.SYSなどを探して、次のブートシーケンスに進む訳だ。
次にFAT32の場合を見てみよう。
[FAT32のディスクパラメータ]
offset | サイズ(bytes) | 内容 | 値 |
03 | 8 | OEM名 | |
0B | 2 | セクターサイズ | 512 |
0D | 1 | セクター数/クラスター | |
0E | 2 | 予約セクター数 | |
10 | 1 | FATの数 | |
11 | 4 | (リザーブ) | |
15 | 1 | メディアDescriptor | |
16 | 2 | セクター数/FAT | |
18 | 2 | セクター数/トラック | |
1A | 2 | ヘッド数 | |
1C | 4 | 隠しセクター数 | |
20 | 4 | 全Bigセクター数 | |
24 | 4 | Bigセクター数/FAT | |
28 | 2 | 拡張フラグ | |
2A | 2 | ファイルシステムバージョン | |
2C | 4 | ルートの最初のクラスター | |
30 | 2 | ファイルシステム情報セクター位置 | |
32 | 2 | バックアップブートセクター位置 | 6 |
34 | 12 | (リザーブ) | |
40 | 1 | ドライブID | |
41 | 1 | (NTのためのリザーブ) | |
42 | 1 | 拡張ブートサイン | |
43 | 4 | シリアル番号 | |
47 | 11 | ボリューム名 | |
52 | 8 | ファイルシステムタイプ | FAT32 |
FAT16よりはいろいろな情報が増えているが、それ程大きな違いはない。おもしろいのはバックアップブートセクターというものだ。実はWindows98では、当該ブートセクターが壊れた場合のためにバックアップを6番セクター(先頭から7番目のセクター)に書いている。従ってWindows98が作るMBRのブートストラップローダは、もし通常のブートセクターが壊れいた場合、こちらのセクターを読み込んでブートする。
さて、最後にNTFSのディスクパラメータを見てみよう。
[NTFSのディスクパラメータ]
offset | サイズ(bytes) | 内容 | 値 |
03 | 8 | OEM名 | NTFS |
0B | 2 | セクターサイズ | 512 |
0D | 1 | セクター数/クラスター | |
0E | 2 | 予約セクター数 | |
10 | 1 | FATの数 | |
11 | 2 | ルートディレクトリエントリー数 | |
13 | 2 | 全セクター数 | |
15 | 1 | メディアDescriptor | |
16 | 2 | セクター数/FAT | |
18 | 2 | セクター数/トラック | |
1A | 2 | ヘッド数 | |
1C | 4 | 隠しセクター数 | |
20 | 4 | 全Bigセクター数 | |
24 | 4 | 未使用 | |
28 | 8 | 全NTFSセクター数 | |
30 | 8 | MFT開始クラスター | |
38 | 8 | MFTミラー開始クラスター | |
40 | 4 | クラスター数/FRS | |
44 | 4 | クラスター数/Indexブロック | |
48 | 4 | シリアル番号 | |
4C | 4 | チェックサム |
FATと似たようなデータもある。これはNTFSでもセクターをいくつかまとめたクラスターという概念があるので、その点が同じだからだ。しかし全く異なったものもいくつか見受けられる。MFTというのはMaster File Tableで、その名の通りFATに変わる新しい概念である。